home *** CD-ROM | disk | FTP | other *** search
- //: C25:sumValue.h
- // From Thinking in C++, 2nd Edition
- // Available at http://www.BruceEckel.com
- // (c) Bruce Eckel 1999
- // Copyright notice in Copyright.txt
- // Sums the value of Trash in any type of STL
- // container of any specific type of Trash:
- #ifndef SUMVALUE_H
- #define SUMVALUE_H
- #include <typeinfo>
- #include <vector>
-
- template<typename Cont>
- void sumValue(Cont& bin) {
- double val = 0.0f;
- typename Cont::iterator tally = bin.begin();
- while(tally != bin.end()) {
- val +=(*tally)->weight() * (*tally)->value();
- out << "weight of "
- << typeid(*(*tally)).name()
- << " = " << (*tally)->weight()
- << endl;
- tally++;
- }
- out << "Total value = " << val << endl;
- }
- #endif // SUMVALUE_H ///:~
-